理论基础:原版梅林固件自定义使用指南 您所在的位置:网站首页 梅林Merlin live 酒吧 理论基础:原版梅林固件自定义使用指南

理论基础:原版梅林固件自定义使用指南

2024-06-20 23:42| 来源: 网络整理| 查看: 265

原版梅林(Asuswrt-merlin)是华硕路由器的第三方替代固件,旨在调整和修复,而不是追求更多新的功能和特性。虽然原版梅林不提供更多的功能,但却开放高级自定义的看相关接口,如可以使用用户脚本、自定义配置文件、DDNS服务等功能,用户可以对路由器进行自定义调整,自由度很高。本文根据官方文档,简要介绍常用的自定义功能,用于解决常见的问题。

一、JFFS 分区简介

JFFS 分区是闪存的可写部分,以允许在路由器内存储小文件(例如脚本、配置文件等)。该分区在重新启动后不会丢失,用户可以在 Tools > Sysinfo > Internal Storage 中检查 JFFS 空间的大小和可用性。

注意:不建议频繁写入JFFS分区,因为它可能会加快损坏闪存芯片。

二、用户脚本(User scripts)

虽然 Asuswrt-Merlin 仅在原始固件上添加了有限的新功能,但可以通过用户脚本实现许多自定义功能。 比如:允许设置自定义防火墙规则、创建按计划运行的任务或启动新服务等。

用户脚本存储位置在JFFS分区 /jffs/scripts/ 目录下,需要在管理后台启用支持。

注意:JFFS分区可能内置的脚本有 services-start、services-stop、service-event、service-event-end、wan-event、wan-start、firewall-start、nat-start、init-start、pre-mount、post-mount、unmount、dhcpc-event、openvpn-event、ddns-start、update-notification、qos-start、wgserver-stop and wgserver-start、wgclient-stop and wgclient-start、Postconf scripts等,主要用于触发用户脚本或用户命令开始执行。

创建用户脚本注意事项。

(1)为脚本添加执行权限。

(2)脚本开头添加shebang。

(3)脚本格式需要为Unix 行结尾。

用法示例:在 /jffs/scripts/ 目录 wan-start 文件中,填入 socat 有关命令,实现公网IPv6端口转发到内网IPv4端口。

三、自定义配置文件(Custom config files)

梅林固件可以自定义路由器应用服务的动态生成配置文件,例如 minidlna 、dnsmasq等。

(一)启用自定义配置文件(Enabling support for custom configs)

默认情况下,功能是禁用的。如果要启用,进入管理后台的系统管理→系统设置,在JFFS板块下启用即可。

(二)替换或附加内容到配置文件(Replacing or appending content to config files)

可以将配置内容附加到由固件创建的各种配置文件中,甚至可以将它们完全替换为个人创建的自定义配置文件。注意:配置覆写文件必须存储在 /jffs/configs/ 目录之下。

(1)将配置内容附加到固件创建的配置文件上,只需要在文件末尾添加“.add”即可。

(2)如果不在文件末尾添加“.add”,就会完全替换默认的配置文件。

(3)以下是梅林固件中可以覆写的配置文件列表。

有adisk.service、afpd.service、avahi-daemon.conf、cake-qos.conf (only cake-qos.conf.add supported)、dhcp6s.conf、dnsmasq.conf、exports (only exports.add supported)、fstab (only fstab supported)、group, gshadow, passwd, shadow (only .add versions supported)、hosts (for /etc/hosts)、igmpproxy.conf、inadyn.conf、minidlna.conf、mt-daap.service、nanorc (no .add support) 、pptpd.conf、profile (shell profile, only profile.add supported)、smb.conf、snmpd.conf、stubby.yml (only stubby.yml.add supported)、torrc、vsftpd.conf、upnp (for miniupnpd)、wgclient%d (%d = unit number)、wgserver、wgserver_peer (peer config file generated to connect to the local server)等。

注意:请注意查询官方文档,确认其使用方式。

用法示例:通过覆写路由器 /etc/hosts 文件,实现全局hosts功能。

四、DDNS 服务(DDNS services)

从 Asuswrt-Merlin 384.7 版本开始, 默认使用 In-a-dyn 客户端(全称:Internet Automated Dynamic DNS Client)用于补充WebUI不支持的ddns服务。

以下是使用 In-a-dyn 支持的服务但Asuswrt-Merlin webui 不支持的DDNS服务(Using one of the services supported by In-a-dyn but not by the Asuswrt-Merlin webui)的方法。

(一)首先,在 /jffs/ 目录下创建 inadyn.conf 配置文件(注意:不要混淆 /jffs/configs/inadyn.conf,后者用于覆写WebUI配置)。

注意:In-a-dyn客户端现已支持 dnspod、pubyun、3322等服务商,暂未支持阿里云。阿里云用户,可以将域名交由其他DNS服务商解析(不是域名转入)。

(1)以下是cloudflare服务商In-a-dyn配置文件的完整示例。

(2)以下是dnspod服务商In-a-dyn配置文件的完整示例。

(3)以下是自定义提供商( custom provider)In-a-dyn配置文件的完整示例。

(二)其次,修改 /jffs/scripts/ 目录下的 ddns-start 文件(如无,请新建),使用inadyn命令调用自定义配置文件(即inadyn.conf)。

注意:ddns-start 文件内容中,选项 --once,将确保 In-a-dyn 在完成更新后退出。当IP变化时,会调用程序再次更新,后续无需手动运行。

(三)为 ddns-start 文件添加执行权限。

(四)最后,在WebUI中,设置DDNS服务商(DDNS provider)为“Custom”并提供hostname,应用设置后就可以看到Registration is successful对话框。

参考文档:

https://github.com/RMerl/asuswrt-merlin.ng/wiki

https://github.com/RMerl/asuswrt-merlin.ng/wiki/Custom-config-files

https://github.com/RMerl/asuswrt-merlin.ng/wiki/User-scripts

https://github.com/RMerl/asuswrt-merlin.ng/wiki/JFFS

https://github.com/RMerl/asuswrt-merlin.ng/wiki/DDNS-services

https://github.com/troglobit/inadyn/blob/master/man/inadyn.conf.5



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有